package com.atguigu.gulimall.product.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 商品属性
 * 
 * @author feiji
 * @email 2803313690@qq.com
 * @date 2020-12-29 11:48:10
 */
@Data
@TableName("pms_attr")
public class AttrEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 属性id
	 */
	@TableId
	private Long attrId;
	/**
	 * 属性名
	 */
	private String attrName;
	/**
	 * 是否需要检索[0-不需要，1-需要]
	 */
	private Integer searchType;
	/**
	 * 属性图标
	 */
	private String icon;
	/**
	 * 可选值列表[用逗号分隔]
	 */
	private String valueSelect;
	/**
	 * 属性类型[0-销售属性，1-基本属性，2-既是销售属性又是基本属性]
	 */
	private Integer attrType;
	/**
	 * 启用状态[0 - 禁用，1 - 启用]
	 */
	private Long enable;
	/**
	 * 所属分类
	 */
	private Long catelogId;
	/**
	 * 快速展示【是否展示在介绍上；0-否 1-是】，在sku中仍然可以调整
	 */
	private Integer showDesc;

	//值类型，只能是单个值还是允许多个值
	private Long valueType = 1L;

	//新增属性的时候告诉是哪个分组下的属性，作为中间关系表的数据，该字段不
	// 是属性表中的字段，而是中间表作为一致性处理的字段。还记得我们在分类表
	//与品牌表中就是这么处理的么？但以后我们不再这么写了，这样写不规范，对原有
	//代码由侵入性，我们推荐新建一个VO类。什么是VO呢？为了我们项目更清晰的分层
	//，我们将每种不同的对象按照功能进行了划分。比如：
	/**
	 * PO:(persistant)持久对象，或者用entity来表示，一个PO对象对应着表中的一条记录
	 * TO:(Transfer) 数据传输对象，微服务之间相互调用时会发送或接收一些数据，这些数据需要封装成对象，即使TO对象
	 * DTO:(DATA Transfer) 同上
	 * VO:(value) 值对象，或者换个词(view)视图对象。接受页面传递来的数据，封装对象；将业务处理完成的数据，封装成
	 * 		页面要用到的对象
	 */
//	@TableField(exist = false)
//	private Long attrGroupId;
}
